When sending a data object from one node on a network to another it is common practice to break the data object up into smaller pieces at a sending node and to have the sending node send each piece across the network in a data block portion of a packet. Such a packet typically also includes a header that contains an identifier identifying a destination node and often an identifier identifying the sending/source node as well. As an example, a node using IP packets to send a data object to another node will often break the data object up into an ordered set of packets where each packet comprises a data block portion containing a piece of the data object, and a header portion the contains both a source IP address and a destination IP address. The phrase “ordered set of packets” is used herein to denote any set of packets used to transmit a data object between nodes such that the contents of all of the data packets is necessary to reconstruct the data object at a receiving node. It is a set in the sense that all the packets are necessary to recreate the data object, and ordered in the sense that the contents of the packets must be ordered in a particular way to recreate the data object. In some instances multiple data objects may be transmitted via a single ordered set of packets.
Unfortunately, the inclusion of source and destination identifiers in packet headers provides a mechanism by which an entity that monitors the flow of packets across a network can identify nodes and possibly reconstruct the topology of the network. Having their identifiers known raises security concerns for the nodes as the identifier can be used to send packets to the node and possibly to gain access to the node.